/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.entidade.fermojupi;

import br.com.deployment.entidade.fermojupi.AtoCampo;
import br.com.deployment.entidade.selo.TipoSelo;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;

/**
 *
 * @author roniere
 */
@Entity
public class AtoItem implements Serializable{
    
    @Id
    @SequenceGenerator(name = "seq_atoItem", sequenceName = "seq_atoItem", allocationSize=1 )
    @GeneratedValue(generator = "seq_atoItem", strategy = GenerationType.SEQUENCE)
    private int id;
    
    @OneToOne
    private AtoTipo atoTipo;
    
    @Column(length=60)
    private String codigo;
    
    @Column(length=300)
    private String descricao;
    
    @OneToOne(fetch= FetchType.EAGER)
    private TipoSelo tipoSelo;
    
    @OneToMany
    private List<AtoCampo> atoCampos;
    
    @Column(length=10)
    private String sigla;
    
    @Column
    private int prazo;
    
    @Column
    private boolean ativo;

    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public AtoTipo getAtoTipo() {
        return atoTipo;
    }

    public void setAtoTipo(AtoTipo atoTipo) {
        this.atoTipo = atoTipo;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public TipoSelo getTipoSelo() {
        return tipoSelo;
    }

    public void setTipoSelo(TipoSelo tipoSelo) {
        this.tipoSelo = tipoSelo;
    
    }

    public List<AtoCampo> getAtoCampos() {
        return atoCampos;
    }

    public void setAtoCampos(List<AtoCampo> atoCampos) {
        this.atoCampos = atoCampos;
    }

 

    public int getPrazo() {
        return prazo;
    }

    public void setPrazo(int prazo) {
        this.prazo = prazo;
    }

    public String getSigla() {
        return sigla;
    }

    public void setSigla(String sigla) {
        this.sigla = sigla;
    }
    
    

    
     
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final AtoItem other = (AtoItem) obj;
        if (this.id != other.id) {
            return false;
        }
        if (this.atoTipo != other.atoTipo && (this.atoTipo == null || !this.atoTipo.equals(other.atoTipo))) {
            return false;
        }
        if ((this.codigo == null) ? (other.codigo != null) : !this.codigo.equals(other.codigo)) {
            return false;
        }
        if ((this.descricao == null) ? (other.descricao != null) : !this.descricao.equals(other.descricao)) {
            return false;
        }
        if (this.tipoSelo != other.tipoSelo && (this.tipoSelo == null || !this.tipoSelo.equals(other.tipoSelo))) {
            return false;
        }
        if (this.ativo != other.ativo) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 61 * hash + this.id;
        hash = 61 * hash + (this.atoTipo != null ? this.atoTipo.hashCode() : 0);
        hash = 61 * hash + (this.codigo != null ? this.codigo.hashCode() : 0);
        hash = 61 * hash + (this.descricao != null ? this.descricao.hashCode() : 0);
        hash = 61 * hash + (this.tipoSelo != null ? this.tipoSelo.hashCode() : 0);
        hash = 61 * hash + (this.ativo ? 1 : 0);
        return hash;
    }

    @Override
    public String toString() {
        return "AtoItem{" + "id=" + id + ", atoTipo=" + atoTipo + ", codigo=" + codigo + ", descricao=" + descricao + ", tipoSelo=" + tipoSelo + ", atoCampos=" + atoCampos + ", sigla=" + sigla + ", prazo=" + prazo + ", ativo=" + ativo + '}';
    }  

}
